﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 中介者模式
{

    /// <summary>
    /// 国家，抽象类
    /// </summary>
    public abstract class Country
    {
        protected UnitedNations un;
        public Country(UnitedNations un)
        {
            this.un = un;  //得到中介者
        }
    }



    /// <summary>
    /// 具体的国家类【美国】
    /// </summary>
    public class USA : Country
    {
        public USA(UnitedNations un)
            : base(un)
        { }
        public void Declare(string message)
        {
            un.Declare(message, this);
        }
        public void GetMessage(string message)
        {
            Console.WriteLine("美国获得对方信息：" + message);
        }
    }


    /// <summary>
    /// 具体的国家类【伊拉克】
    /// </summary>
    public class Iraq : Country
    {
        public Iraq(UnitedNations un)
            : base(un)
        { }
        public void Declare(string message)
        {
            un.Declare(message, this);
        }
        public void GetMessage(string message)
        {
            Console.WriteLine("伊拉克获得对方信息：" + message);
        }
    }
}
